1. Field of the Invention
The present invention relates to storage subsystems and in particular to methods and associated apparatus which provide file locking functions within the I/O controllers (host adapters) of a clustered storage subsystem.
2. Discussion of Related Art
When multiple computing environments share access to common resources, such as mass storage files, it is known to lock the resource to attain temporary exclusive access to the resource. When all such computing environments are programs co-resident on a single computing platform, coordination of the locking and release of such shared resources is well known. Semaphore constructs provided as a service by many common operating systems allow application programs (and system programs) to easily coordinate such locking and releasing of a shared resource with a minimum of computational overhead imposed on the computing environment.
For example, when sharing access to a file, file system access API functions typically enable a user to request a lock over all or part of a specific file in the file system mass storage devices. The file system API function returns a status indicating that the requested lock has been granted or denied and the calling program proceeds accordingly.
However, when a computing environment is distributed, the coordination of locking of a shared resource requires interprocess communication, typically over a network communication medium using network communication protocols. Network protocols and communication media are often significantly slower than the bandwidth of communication with a mass storage device. Having to coordinate the locking and releasing of locks associated with files stored in mass storage subsystems can create a performance bottleneck restricting the perceived performance of a mass storage subsystem. In particular, the bandwidth limitations of networking protocols to implement file locking over network communication media causes severe performance degradation in use of high performance mass storage subsystems such as RAID storage subsystems.
In view of the above it is clear that a need exists for an improved method and apparatus for implementing file locking in a distributed computing environment including high performance mass storage subsystems.